package com.liveinstars.im.core.service;

import com.liveinstars.im.domain.dao.model.Todo;

import java.util.List;

/**
 * @author: zhouze
 * @date: 2020/4/30
 */
public interface TodoService {

    /**
     * 添加代办
     * @param todo
     */
    void add(Todo todo);

    /**
     * 根据id更新tudo
     * @param todo
     */
    void updateById(Todo todo);

    /**
     * 根据id获取todo
     * @param id
     * @return
     */
    Todo getById(Long id);

    /**
     * 完成todo
     * @param id
     * @param handleMsg
     * @param agree
     */
    void finishTodo(Long id, String handleMsg, Boolean agree);

    /**
     * 根据用户和开始查询id获取未完成todo列表
     * @param userId
     * @param startId
     * @return
     */
    List<Todo> listUnCompleteTodoByUserIdAndStartId(Long userId, Long startId);

    /**
     * 根据发起人和收到人以及类型和圈子id获取代办消息
     * @param fromId
     * @param toId
     * @param type
     * @return
     */
    Todo getLastTodoByActivityId(Long fromId, Long toId, Integer type, Integer activityId);

    Todo getLastTodoByGroupId(Long fromId, Long toId, Integer type, Long groupId);
    /**
     * todo消息处理
     * @param userId
     * @param todoId
     * @param agreeOrNot
     * @param handleMsg
     * @return
     */
    Todo dealWithTodo(Long userId, Long todoId, Boolean agreeOrNot, String handleMsg);

    Todo getTodoByActivityIdAndUserId(Long userId, Integer id);

    List<Todo> listUnCompleteActivityTodoByUserId(Long userId);
}
